/**
 * @file tsk_analy.h
 * @brief tskp库 - 任务参数解析模块头文件
 * @details
 * 本文件声明了tskp任务调参库的参数解析器结构体及相关接口函数。
 * 支持多ID、多命令、参数缓存、命令存储等功能，适用于嵌入式、实时系统下的远程指令调参场景。
 *
 * 作者：小傲（个人开发）
 * 邮箱：2655640770@qq.com
 * 版权声明：开源公开，欢迎建议与反馈
 * 日期：2025-09-11
 */

#ifndef _TSK_ANALY_H_
#define _TSK_ANALY_H_

#include "tsk_misc.h"

#ifdef _TSK_TSKP_

#include "tsk_analy_queue.h"
#include "tsk_task.h"

#if TSK_CMD_SWITCH

#include "tsk_cmdstore.h"

#endif

typedef struct{
    tsk_analy_Queue analy_Queue;        //解析队列
    #if TSK_CMD_SWITCH
        tsk_cmdstore_t cmdstore;            //命令存储器
    #endif
    char data[TSK_ANALY_CACHE_MAXLEN+1];//解析缓存,后面有个'\0'
    int len;                            //当前缓存长度
}tsk_analy_t;                           //任务解析器

void tsk_analy_Init(tsk_analy_t *analy_p);
void tsk_dis_data(tsk_analy_t *analy_p,tsk_TaskScheduler *sched);

#endif // _TSK_TSKP_

#endif // !_TSK_ANALY_H_
